Data busses are widely used to allow digital communication between two or more electronic devices, which are often referred to as bus nodes. The term “bus” usually denotes a communication system which encompasses the specification of the bus hardware as well as a communication protocol according to which the bus nodes communicate. In order to allow a large variety of users to use a specific bus, data busses are often standardized, wherein different bus standards prevail in different fields of industry. For example, in the automotive industry CAN (Controller Area Network), LIN (Lokal Interchange Network), and FlexRay are commonly used. In the field of consumer electronics USB (Universal Serial Bus) is widely used.
A bus node (i.e. an electronic device connected to the bus) usually includes a bus interface which may be an electronic circuit that accomplishes the actual transmission and reception of data to and from the bus in accordance with the appropriate bus standard. A bus driver circuit is used for implementing the data transmission on a physical level (e.g. layer 1 of the well-known OSI model). For example the driver circuit has to provide defined states at the physical connection to the bus line(s). For example, the bus driver generates a defined first voltage level (e.g. 0 volts) to transmit a binary “0” to the bus and a defined second voltage level (e.g. 12 volts) to transmit a binary “1” to the bus. Bus drivers are usually designed to provide at least one “high resistive” state to avoid problems when different bus nodes generate conflicting voltage levels at their bus interface. Sometimes tri-state bus drivers are used. However, common standardized data busses use only two states (to represent binary “0” and “1”) wherein in one state (e.g. the binary “1”) the voltage level (e.g. 12 volts) is applied to the bus line(s) via a resistor. This state is usually called “recessive” or “idle”. A second state (e.g. the binary “0”) is called “dominant” or “active”; in this state the voltage level (e.g. 0 volts) is applied to the bus line via a low-resistance current path, e.g. a closed semiconductor switch. In case one bus node generates a “dominant” (“active”) state by forcing the voltage level on the bus line to 0 volts, all other bus nodes that generate a “recessive” (“idle”) state are overridden. Their output is protected by the mentioned resistor.
In all bus systems the bus nodes (i.e. their bus driver circuits) have to provide an idle/recessive state and an active/dominant state in order to allow a collision-free communication. For example, in LIN or CAN systems the recessive state represents a binary “1” wherein the dominant state represents a binary “0”. In FlexRay or USB systems the recessive state is usually referred to as “idle” and represents a period without communication. Although this idle state is not associated with a data bit (in FlexRay and USB systems in which both “1” and “0” are active states), transitions to the idle state are specified in the respective standards. For example, the transitions have to comply with timing requirements specified in the standard.
Bus driver circuits usually include one or more semiconductor switches which are configured to connect or disconnect the bus wire(s) with a supply potential or ground potential (either via a resistor or directly). The bus line(s), however, may also have a significant resistance and, particularly, a capacitance, which have an impact on the switching time between an active and an idle state. Consequently, the switching time does not only depend on the characteristics of the driver circuit but also one the properties of the connected bus line(s). Slow transitions to idle state are a problematic when high data rates are desired. Thus, there is a need for improved bus drivers and bus nodes.